package org.feng.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import org.feng.api.PageBean;
import org.feng.api.animal.request.AddAndUpdateAnimalRequest;
import org.feng.api.animal.request.DeleteAnimalRequest;
import org.feng.api.animal.request.QueryAnimalRequest;
import org.feng.api.animal.response.AddAndUpdateAnimalDto;
import org.feng.api.animal.response.DeleteAnimalDto;
import org.feng.api.animal.response.QueryAnimalVo;
import org.feng.entity.Animal;
import org.springframework.transaction.annotation.Transactional;

/**
 * 动物服务
 *
 * @author feng
 */
@Transactional(rollbackFor = Exception.class)
public interface IAnimalService extends IService<Animal> {

    /**
     * 删除动物
     *
     * @param request 请求体
     * @return 返回结果
     */
    DeleteAnimalDto delete(DeleteAnimalRequest request);

    /**
     * 新增&修改动物
     *
     * @param request 请求体
     * @return 返回结果
     */
    AddAndUpdateAnimalDto saveOrUpdate(AddAndUpdateAnimalRequest request);

    /**
     * 分页+多条件查询动物列表
     *
     * @param request 请求体
     * @return 动物列表
     */
    PageBean<QueryAnimalVo> queryPages(QueryAnimalRequest request);
}
